package com.minimalist.lindi.mapper;

import com.minimalist.common.entity.lindi.po.LindiIndex;
import com.minimalist.common.entity.lindi.vo.index.LindiIndexQueryVO;
import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryChain;
import com.mybatisflex.core.query.QueryWrapper;

/**
 * 林地指标表 映射层。
 *
 * @author 11987
 * @since 2025-04-16
 */
public interface LindiIndexMapper extends BaseMapper<LindiIndex>{

    /**
     * 根据指标ID查询林地指标信息。
     *
     * @param indexId 指标ID
     * @return 林地指标信息
     */
    default LindiIndex selectIndexByIndexId(Long indexId){
        return selectOneByQuery(QueryChain.create().eq(LindiIndex::getIndexId, indexId));
    }

    /**
     * 根据查询条件分页查询林地指标列表。
     *
     * @param queryVO 查询条件
     * @return LindiIndex分页列表
     */
    default Page<LindiIndex> selectPageIndexList(LindiIndexQueryVO queryVO){
        return paginate(queryVO.getPageNum(), queryVO.getPageSize(),
                QueryWrapper.create()
                        .like(LindiIndex::getLocationName, queryVO.getLocationName())
                        .orderBy(LindiIndex::getLocationName, false));
    }
}
